package com.netease.contract.model;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

public class Loan implements Serializable {
    private Long id;

    private Date createTime;

    private Date updateTime;

    private Long userId;

    private Long merchantId;

    private String productCode;

    private Long repaymentCardId;

    private Long paymentCardId;

    private String borrowingObjectSerial;

    private String serial;

    private BigDecimal rate;

    private Integer period;

    private Integer periodType;

    private Integer repayMethod;

    private Integer repayInAdvance;

    private BigDecimal penaltyRate;

    private Integer penaltyType;

    private Integer speedupDueDays;

    private Date applyTime;

    private Date settleTime;

    private Date dueTime;

    private Long contractId;

    private Integer status;

    private BigDecimal amount;

    private Integer daysOfGrace;

    private Integer operationStatus;

    private Date borrowingTime;

    private Integer repayDay;

    private Integer billDays;

    private String raiseRuleId;

    private static final long serialVersionUID = 1L;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getMerchantId() {
        return merchantId;
    }

    public void setMerchantId(Long merchantId) {
        this.merchantId = merchantId;
    }

    public String getProductCode() {
        return productCode;
    }

    public void setProductCode(String productCode) {
        this.productCode = productCode == null ? null : productCode.trim();
    }

    public Long getRepaymentCardId() {
        return repaymentCardId;
    }

    public void setRepaymentCardId(Long repaymentCardId) {
        this.repaymentCardId = repaymentCardId;
    }

    public Long getPaymentCardId() {
        return paymentCardId;
    }

    public void setPaymentCardId(Long paymentCardId) {
        this.paymentCardId = paymentCardId;
    }

    public String getBorrowingObjectSerial() {
        return borrowingObjectSerial;
    }

    public void setBorrowingObjectSerial(String borrowingObjectSerial) {
        this.borrowingObjectSerial = borrowingObjectSerial == null ? null : borrowingObjectSerial.trim();
    }

    public String getSerial() {
        return serial;
    }

    public void setSerial(String serial) {
        this.serial = serial == null ? null : serial.trim();
    }

    public BigDecimal getRate() {
        return rate;
    }

    public void setRate(BigDecimal rate) {
        this.rate = rate;
    }

    public Integer getPeriod() {
        return period;
    }

    public void setPeriod(Integer period) {
        this.period = period;
    }

    public Integer getPeriodType() {
        return periodType;
    }

    public void setPeriodType(Integer periodType) {
        this.periodType = periodType;
    }

    public Integer getRepayMethod() {
        return repayMethod;
    }

    public void setRepayMethod(Integer repayMethod) {
        this.repayMethod = repayMethod;
    }

    public Integer getRepayInAdvance() {
        return repayInAdvance;
    }

    public void setRepayInAdvance(Integer repayInAdvance) {
        this.repayInAdvance = repayInAdvance;
    }

    public BigDecimal getPenaltyRate() {
        return penaltyRate;
    }

    public void setPenaltyRate(BigDecimal penaltyRate) {
        this.penaltyRate = penaltyRate;
    }

    public Integer getPenaltyType() {
        return penaltyType;
    }

    public void setPenaltyType(Integer penaltyType) {
        this.penaltyType = penaltyType;
    }

    public Integer getSpeedupDueDays() {
        return speedupDueDays;
    }

    public void setSpeedupDueDays(Integer speedupDueDays) {
        this.speedupDueDays = speedupDueDays;
    }

    public Date getApplyTime() {
        return applyTime;
    }

    public void setApplyTime(Date applyTime) {
        this.applyTime = applyTime;
    }

    public Date getSettleTime() {
        return settleTime;
    }

    public void setSettleTime(Date settleTime) {
        this.settleTime = settleTime;
    }

    public Date getDueTime() {
        return dueTime;
    }

    public void setDueTime(Date dueTime) {
        this.dueTime = dueTime;
    }

    public Long getContractId() {
        return contractId;
    }

    public void setContractId(Long contractId) {
        this.contractId = contractId;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public Integer getDaysOfGrace() {
        return daysOfGrace;
    }

    public void setDaysOfGrace(Integer daysOfGrace) {
        this.daysOfGrace = daysOfGrace;
    }

    public Integer getOperationStatus() {
        return operationStatus;
    }

    public void setOperationStatus(Integer operationStatus) {
        this.operationStatus = operationStatus;
    }

    public Date getBorrowingTime() {
        return borrowingTime;
    }

    public void setBorrowingTime(Date borrowingTime) {
        this.borrowingTime = borrowingTime;
    }

    public Integer getRepayDay() {
        return repayDay;
    }

    public void setRepayDay(Integer repayDay) {
        this.repayDay = repayDay;
    }

    public Integer getBillDays() {
        return billDays;
    }

    public void setBillDays(Integer billDays) {
        this.billDays = billDays;
    }

    public String getRaiseRuleId() {
        return raiseRuleId;
    }

    public void setRaiseRuleId(String raiseRuleId) {
        this.raiseRuleId = raiseRuleId == null ? null : raiseRuleId.trim();
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", createTime=").append(createTime);
        sb.append(", updateTime=").append(updateTime);
        sb.append(", userId=").append(userId);
        sb.append(", merchantId=").append(merchantId);
        sb.append(", productCode=").append(productCode);
        sb.append(", repaymentCardId=").append(repaymentCardId);
        sb.append(", paymentCardId=").append(paymentCardId);
        sb.append(", borrowingObjectSerial=").append(borrowingObjectSerial);
        sb.append(", serial=").append(serial);
        sb.append(", rate=").append(rate);
        sb.append(", period=").append(period);
        sb.append(", periodType=").append(periodType);
        sb.append(", repayMethod=").append(repayMethod);
        sb.append(", repayInAdvance=").append(repayInAdvance);
        sb.append(", penaltyRate=").append(penaltyRate);
        sb.append(", penaltyType=").append(penaltyType);
        sb.append(", speedupDueDays=").append(speedupDueDays);
        sb.append(", applyTime=").append(applyTime);
        sb.append(", settleTime=").append(settleTime);
        sb.append(", dueTime=").append(dueTime);
        sb.append(", contractId=").append(contractId);
        sb.append(", status=").append(status);
        sb.append(", amount=").append(amount);
        sb.append(", daysOfGrace=").append(daysOfGrace);
        sb.append(", operationStatus=").append(operationStatus);
        sb.append(", borrowingTime=").append(borrowingTime);
        sb.append(", repayDay=").append(repayDay);
        sb.append(", billDays=").append(billDays);
        sb.append(", raiseRuleId=").append(raiseRuleId);
        sb.append("]");
        return sb.toString();
    }
}